﻿using System;
using System.Collections.Generic;
using RealtReview.DataAccess.SearchParameters;
using RealtyReview.Business.Models.ViewModels;

namespace RealtyReview.Business.Interfaces
{
    public interface IUserService
    {
        UserDetailsViewModel GetUserDetails(Guid userId);

        bool SetUserDetails(UserDetailsViewModel model);

        IEnumerable<MessageViewModel> GetUserMessages(UserSearchParameters parameters);

        bool SendMessage(Guid fromUserId, Guid toUserId, string title, string message);

        bool LeaveNewsComment(Guid userId, Guid newsId, string message);

        bool LeaveReviewComment(Guid userId, Guid newsId, string message);

        bool SendMessageToAdmin(Guid? userId,string title, string email);

        void GetNotificationCounters(Guid userId, out int newMessages, out int newNotifications);

        IEnumerable<NotificationViewModel> GetUserNotifications(UserSearchParameters parameters);
    }
}